<?php

namespace Common\Model;

abstract class BaseModel extends \Think\Model {

    /**
     * 继承TP回调方法，从而在新增新数据的时候修改creator以及operator字段
     * @param  array $data 准备新增加的数据
     * @param  array $options 准备新增的where条件
     */
    protected function _before_insert(&$data, $options) {
        parent::_before_insert($data, $options);
        $data['creator'] = getUserId();
        $data['operator'] = getUserId();
    }

    /**
     * 继承TP回调方法，从而可以在修改数据前统一赋值operator字段
     * @param  array $data 准备修改的数据
     * @param  array $options 准备修改的where条件
     */
    protected function _before_update(&$data, $options) {
        parent::_before_update($data, $options);
        $data['operator'] = getUserId();
    }

    /**
     * 继承TP回调方法，从而可以记录真实数据被删除的日志
     * @param  array $data 数组存有被删除记录的主键，例：主键名为id，则$data['id']即是被删除的id
     * @param  array $options 准备删除的where条件
     */
    protected function _after_delete($data, $options) {
        
    }

    /**
     * 主键Id返回数据
     * @modify songanwei 2015-12-31
     * @param integer $id 主键ID
     * @return mixed
     */
    public function getInfo($id) {
        return $this->where(array('id' => $id))->find();
    }


    /**
     * 根据ID删除数据
     * @modify Amos 2015-09-25 创建
     * @modify trainyao 2016-01-04 增加根据多个id删除
     * @param mixin $ids
     * @return boolean 删除成功与否
     */
    public function deleteInfo($id) {
        $option = array(
            'isdelete' => NOT_DELETE,
        );

        if(is_array($id)) {
            $id = implode(',', $id);
        }
        if(strpos($id, ',') !== false) {
            $option['id'] = array('in', $id);
        } else {
            $option['id'] = $id;
        }

        $result = $this->where($option)->save(array('isdelete' => IS_DELETE));
        return $result === false ? false : true;
    }
}